package com.jk.blog.config.redis;

import java.util.Set;

/**
 * Redis操作
 */
public interface RedisService {

    /**
     * 通过字节key删除
     * @param key
     */
    void del(byte[] key);

    /**
     * 通过key删除
     * @param key
     */
    void del(String key);

    /**
   * 字节：添加 key value
     * @param key
     * @param value
     */
    void set(byte[] key, byte[] value);

    /**
     * 字节：添加 key value 并设置存活时间，单位：秒
     * @param key
     * @param value
     * @param liveTime
     */
    void set(byte[] key, byte[] value, int liveTime);

    /**
     * 添加 key value
     * @param key
     * @param value
     */
    void set(String key, String value);

    /**
     * 添加 key value 并设置存活时间，单位：秒
     * @param key
     * @param value
     * @param liveTime
     */
    void set(String key, String value, int liveTime);

    /**
     * 字节：获取value
     * @param key
     */
     byte[] get(byte[] key);

    /**
     * 获取value
     * @param key
     * @return
     */
    String get(String key);

    /**
     * 通过正则匹配keys
     * @param pattern
     * @return
     */
    Set<String> keys(String pattern);/**
     * 检查key是否已经存在
     * @param key
     * @return
     */
    boolean exists(String key);

    /**
     * 清空缓存
     * @return
     */
    String flushDB();

    long dbSize();
}
